﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;

namespace Fractalz.MainWindow
{
	public interface IFractalWindow
	{
		/// <summary>
		/// Puts current IFractalWindow in Render Queue to be rendered with the next available thread.
		/// </summary>
		void render();

		/// <summary>
		/// Returns the current Bitmap.  calls render() if FractalStatus.renderState()
		/// does not return as RenderState.Finished.
		/// </summary>
		/// <returns>Bitmap current image</returns>
		Bitmap getBitmap();

		/// <summary>
		/// returns the status of the IFractalWindow item.
		/// </summary>
		/// <returns>FractalStatus Status</returns>
		FractalStatus getStatus();

		/// <summary>
		/// Returns the XML-related parameters of IFractalWindow item.
		/// </summary>
		/// <returns></returns>
		FractalParameters getParams();

		void setParams(FractalParameters fractalParams);

		System.Windows.Forms.Form getHandle();

		event EventHandler IssueString;

		void setMDIParent(System.Windows.Forms.Form parent);
	}


}
